Model predictive control (MPC) is a popular technique for controlling multi-input and multi-output processes, such as industrial manufacturing processes. MPC uses a model to predict how one or more controlled process variables are expected to behave in the future. Changes can then be made to one or more manipulated process variables in order to alter the controlled process variable(s). Ideally, each controlled process variable is thereby maintained within a desired range.
An MPC controller often implements an online quadratic programming (QP) solver for solving an optimization problem related to a controlled process. However, the efficient execution of an optimization routine often poses challenges in various circumstances. For example, process processes may involve hundreds of manipulated process variables and thousands of controlled process variables (many with active limits and rate constraints). Also, control intervals can be relatively short, such as ten to twenty seconds. While generic and custom QP solvers have been developed, they often suffer from various shortcomings.